<?php
/* 
 * ********* CVS HEADER ********* 
 * 
 * $RCSfile: admmenusauv.php,v $ 
 * $Date: 2005/10/21 12:58:07 $ 
 * $Revision: 1.3 $ 
 * 
 * ********* CVS HEADER ********* 
 */
require_once("module/TPLN/TPLN.php"); 
$TPLN = new TPLN; 
if($action=="process"){
	$message="";
	$TPLN->Open($op_basepath."tpl/admmenusauv.tpl");
	$menu_query = "";
	if(is_array($menus)){
		$i=0;
		while($menus[$i]){
			$menus[$i] = "id='".$menus[$i]."'";
			$i++;	
		}
		$menu_query = implode(" OR ",$menus);
	}
	$query = "SELECT * FROM rportal_menu ";
	if($menu_query!=""){
		$query .= "WHERE ".$menu_query;	
	}
	$query .= " ORDER BY nom";
	$result_menu=rportalrequete($query) or rportalerreur ("$query","?op=");
	if(rportalnbresult($result_menu)==0){
	    $TPLN->EraseBloc("menu");
	    $message.="<b>Pas encore de menu</b><br />";
	}else{
		while($menu=rportalligne($result_menu)){
			$message.="Le menu ".$menu['nom']." est sauvegarde<br />";
			$TPLN->Parse("menu.nom",$menu['nom']);	
			$TPLN->Parse("menu.fichier",$menu['fichier']);
			$TPLN->Parse("menu.titre",$menu['titre']);
			$query = "SELECT * FROM rportal_menu_item WHERE id_menu='".$menu['id']."' ORDER BY ordre ASC";
			$result_item=rportalrequete($query) or rportalerreur ("$query","?op=");
			if(rportalnbresult($result_item)==0){
			    $TPLN->EraseBloc("menu.item");
			    $message.="<b>Pas encore d'item dans le menu ".$menu['nom']."</b><br />";
			}else{
				while($item=rportalligne($result_item)){
					$message.="L'item \"".$item['texte']."\" est sauvegarde<br />";
					$TPLN->Parse("menu.item.texte",$item['texte']);
					$TPLN->Parse("menu.item.lien",$item['lien']);
					$TPLN->Parse("menu.item.target",$item['target']);
					$TPLN->Parse("menu.item.ordre",$item['ordre']);
					$query = "SELECT * FROM rportal_menu_droit WHERE id_menu='".$menu['id']."' AND id_item='".$item['id']."' ORDER BY fonction";
					$result_droit=rportalrequete($query) or rportalerreur ("$query","?op=");
					if(rportalnbresult($result_droit)==0){
					    $TPLN->EraseBloc("menu.item.droit");
					    $message.="<b>Pas encore de droit pour l'item \"".$item['texte']."\" dans le menu ".$menu['nom']."</b><br />";
					}else{
						$i = 0;
						while($droit=rportalligne($result_droit)){
							$message.="Le droit \"".$droit['fonction']."\" est sauvegarde<br />";
							$TPLN->Parse("menu.item.droit.id",$i);
							$TPLN->Parse("menu.item.droit.fonction",$droit['fonction']);
							$i++;
							$TPLN->Loop("menu.item.droit");	
						}
					}
					$TPLN->Loop("menu.item");
				}	
			}
			$TPLN->Loop("menu");
		}
	}
	 
	$nom=time();
	$fichier=fopen("install/menu$nom.ins","w");
	fputs($fichier,$TPLN->Output());
	fclose($fichier);
	
	$TPLN->Open($op_basepath."tpl/admmenusauv.html");
	$TPLN->IncludeFile("header","environnement/$session[environnement]/header.php"); 
	$TPLN->IncludeFile("footer","environnement/$session[environnement]/footer.php");
	
	require_once(get_path_module("admin"));
	$pc = new panneau_controle();
	$pc->calculRubriqueParFonction($op);
	$TPLN->Parse("panneau_controle",$pc->retourneEntete());
	
	$TPLN->Parse("fichier","install/menu$nom.ins");
	$TPLN->Parse("message",$message);
	$TPLN->Write();
	exit;
}
$TPLN->Open($op_basepath."tpl/admmenusauvform.html");
$TPLN->IncludeFile("header","environnement/$session[environnement]/header.php"); 
$TPLN->IncludeFile("footer","environnement/$session[environnement]/footer.php");

require_once(get_path_module("admin"));
$pc = new panneau_controle();
$pc->calculRubriqueParFonction($op);
$TPLN->Parse("panneau_controle",$pc->retourneEntete());

$query = "SELECT * FROM rportal_menu ORDER BY nom";
$result_menu=rportalrequete($query) or rportalerreur ("$query","?op=");
if(rportalnbresult($result_menu)==0){
    $TPLN->ParseBloc("Pas encore de menu");
}else{
	while($menu=rportalligne($result_menu)){
		$TPLN->Parse("liste.menuid",$menu['id']);
		$TPLN->Parse("liste.nom",$menu['nom']);
		$TPLN->Parse("liste.fichier",$menu['fichier']);
		$TPLN->Loop("liste");		
	}
}
$TPLN->Write();
?>